A heterogeneous computing environment, for example, an enterprise network of a large corporation, typically contains multiple computer systems, operating systems, file systems, protocols, and network architectures that are designed, manufactured, installed, or configured differently. These various elements may cooperate to allow enterprise hardware and software resources to be shared by multiple computer systems. In a typical example, each data storage device implements a particular file system, meaning that for different types of storage devices and for storage devices managed by diverse file server platforms, many different (and possibly incompatible) file systems are present.
Examples of file systems and file server platforms used in an enterprise network include the WINDOWS® operating system and the Common Internet File System (CIFS) developed by Microsoft Corporation of Redmond, Wash., the NetWare® Core Protocol (NCP) developed by Novell, Inc., Orem, Utah, the UNIX-based Network File System (NFS) developed by Sun Microsystems, the UNIX-like open source LINUX® operating system supported by various corporations, etc. Windows is a registered trademark of Microsoft Corporation. NetWare is a registered trademark of Novell, Inc. Linux is a registered trademark of Linus Torvalds. Further, given the explosive growth of the Internet and its powerful resource sharing capabilities, it is now typical for many file servers, to run both HyperText Transfer Protocol (HTTP) server software to service requests received from the Internet, and to run NFS, CIFS, NCP, or LINUX server software to service requests received from a local network.
In the heterogeneous computing environment, a server managing shared data resources (e.g., a file, database table or record) may be referred to as a local system while a client system accessing the shared data resources may be referred to as a remote system. A storage device storing the shared data resources may be part of the server, physically separated from the server, or logically accessible or otherwise known to the server. The server, or local system, may support two distinct resource access paths to the shared data resources—a local access path for local access from an application installed on the local system and a remote access path for remote access from a remote system.
A local access path may be, for example, the general form of a file or directory name, giving the name of the file and the unique location of the file in a file system. A remote access path may be implemented using standard schemes for network sharing of data resources. For example, a remote access path may conform to the Universal Naming Convention or Uniform Naming Convention (UNC) which specifies a common syntax to describe the location of a network resource, such as a shared file, directory, or printer. Accordingly, a remote system may obtain access to a particular data resource of the local system using the UNC without having to obtain details of the local access path. When the remote system accesses a data resource of a local system using a remote access path, the response time for accessing the data resource may be longer than a local access to the data resource as this remote access path is typically translated into a local access path in order to access the data resource.